package com.myqf.d7_日期类_druid连接池.jdbc连接池.druid连接池;


import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import com.myqf.d7_日期类_druid连接池.jdbc连接池.ConnectionUtil;

import java.sql.SQLException;

/**
 * 作者：黎杭
 * 日期：2020/2/18
 */
public class Test2_超时报错 {
    public static void main(String[] args) throws SQLException {
        // 第一步，获取Druid的数据源 DruidDataSource,数据源，也就是连接数据库的源头
        DruidDataSource druidDataSource = new DruidDataSource();

        druidDataSource.setUsername(ConnectionUtil.USER_NAME);// 设置账户名
        druidDataSource.setUrl(ConnectionUtil.URL);// 设置数据库链接地址
        druidDataSource.setPassword(ConnectionUtil.PASSWORD);// 设置数据库连接密码
//        druidDataSource.setDriverClassName();// 设置驱动类的名字：这里要注意，Druid可以根据用户传的数据库地址，自动推算驱动类名称
        druidDataSource.setName("mysql数据源");// 设置数据源的名称，因为在实际开发之中，很多时候可能会有多个数据源，mysql,oracle
        druidDataSource.setMinIdle(1);// 设置最小空闲连接数
        druidDataSource.setMaxActive(5);// 设置最大连接数,5
        // 此时使用的德鲁伊连接池去访问数据
        DruidPooledConnection connection1 = druidDataSource.getConnection();// 获取连接对象
        DruidPooledConnection connection2 = druidDataSource.getConnection();// 获取连接对象
        DruidPooledConnection connection3 = druidDataSource.getConnection();// 获取连接对象
        DruidPooledConnection connection4 = druidDataSource.getConnection();// 获取连接对象
        DruidPooledConnection connection5 = druidDataSource.getConnection();// 获取连接对象
//        DruidPooledConnection connection6 = druidDataSource.getConnection(5000);// 获取连接对象，超过5秒还没有获取到这个连接对象，就会报错
        // 获取第六个的时候，我们观察
        // 所以这个方法，可以用来设置最大等待时间，保证不会让用户一直等待
//        for (int x = 0; x < 10; x++) {
//            DruidPooledConnection connection = druidDataSource.getConnection();// 获取连接对象
//            // 我们测试反复获取连接对象，看最多能够获取多少个？
//            System.err.println(connection);
//        }
    }
}
